V304 - ACCOUNT-VERIFIED NUMBERED CHARACTER COPIES (PLAIN BG2)
===============================================================

This build does NOT require InfinityLoader, EEex, or any injected game hook.
Launch the normal BaldurII.exe. The existing BG2 UI.MENU + a separate Python
account router perform character-file routing. Python/PySide6 is required to
install; the router continues running as a regular Windows process.

NORMAL BG2 FILE ACCESS

Documents/Baldur's Gate II - Enhanced Edition/characters/
    Drakhysys/Drakhy.CHR       <- permanent character, never moved at login
    Drakhysys/Drakhy.BIO
    Kronas/Kronas.CHR         <- permanent, isolated account character
    dra01.CHR                 <- temporary real CHR copy ONLY during Drakhysys login
    dra01.BIO                 <- accompanying temporary BIO, when present

Valid account-owned CHR files are given short 3-letter numbered names using a
per-account name registry (stored as metadata, NOT as a character backup):
    Drakhysys -> dra01.CHR, dra02.CHR, ...
    Kronas    -> kro01.CHR, kro02.CHR, ...
The first three letters are an identifier, NOT proof of ownership. Ownership
requires the verified complete login and exact account-folder manifest.
Two account names with the same first three letters remain isolated when
accessed sequentially; neither can take over a currently logged in account.

LOGIN: originals remain under characters/<accountname>. The router copies only
valid and account-owned CHR/BIO files into the native flat characters/ folder.
BG2 reads those actual copies; Windows .lnk shortcuts or fake/empty CHR files
are NOT compatible.

IMPORT: BG2 reads the native numbered copy. V304's reply uses the same numbered
alias (dra01) so a valid account character isn't filtered out for its original
filename. The character name inside the CHR is NOT changed.

EXPORT: native BG2 writes a CHR in characters/. The router recognizes a valid
fresh export and copies it into the authenticated account's permanent folder
under the next numbered name, without overwriting unrelated character files.
When BG2 overwrites an existing numbered native view, the router verifies and
safely replaces the corresponding existing character file in that account.

CLEANUP: modified views are copied back on regular router pulses, and verified
router-owned temporary files are deleted on logout/game exit. V304 deliberately
keeps the native view mounted while the account stays logged in: BG2 has no
reliable synchronous native panel-close filesystem hook without a loader, and
unmounting on Done would make reopening Import fail or lose late exports.
Unverified files are retained for review rather than silently deleted.
Permanent account CHR/BIO files are NEVER removed by temporary-view cleanup.

IMPORTANT LIMITATION

Plain BaldurII.exe reads one shared Windows Documents/characters folder. Two
separately running BG2 instances using that SAME profile cannot have different
flat character lists at the exact same time without per-process redirection.
V304 refuses a second account mount in that shared profile while the first
account remains active. For truly independent simultaneous client sessions,
use separate Windows BG2 Documents profiles, or a genuine engine-level file
redirector. The three-letter prefix alone does not isolate filesystem access.

INSTALL

1. Close BG2 and InfinityLoader (if open) and check that your permanent
   account character files are safely in characters/<accountname>.
2. Extract this ZIP and run SETUP_IN_GAME_ACCOUNTS.bat. Choose the actual BG2
   installation and BG2 Documents profile containing Baldur.lua.
3. Start ordinary BaldurII.exe; login with Drakhysys. Open Import; check dra01.
4. Test Export and check characters/Drakhysys after a few seconds. Exit BG2.
5. Login as Kronas; check only kroXX copies, not draXX.
6. If missing or incorrect, keep your files unchanged, run
   CHECK_ACCOUNT_CHARACTER_ACCESS.bat and send ACCOUNT_CHARACTER_ACCESS_REPORT.txt.

No automatic character backups, no restoration of deleted characters,
no automatic migration of old characters_<accountname> folders, and no
automatic deletion of pre-existing loose root CHR/BIO files.
Some built-in BG2 sample/engine import entries can still be displayed by the
unmodified native engine even when no account CHR exists; these are not taken
from another registered account folder. An external router cannot eliminate
hardcoded engine entries without changing the native Import UI/engine.
